package main

import (
	"fmt"
	"github.com/garyburd/redigo/redis" // 引入redis包
)

func main() {
	// 通过 go 向 redis 写入数据和读取数据
	// 1 链接到 redis
	conn, err := redis.Dial("tcp", "127.0.0.1:6379")
	if err != nil {
		fmt.Println("redis.Dial err=", err)
		return
	}
	defer conn.Close() // 关闭
	// 2 通过 go 向 redis 写入数据
	_, err = conn.Do("HMSet", "user02", "name", "john", "age", 19)
	if err != nil {
		fmt.Println("HMSet  err=", err)
		return
	}
	// 3 通过 go 向 redis 读取数据
	r, err := redis.Strings(conn.Do("HMGet", "user02", "name", "age"))
	if err != nil {
		fmt.Println("hget  err=", err)
		return
	}
	for i, v := range r {
		fmt.Printf("r[%d]=%s\n", i, v)
	}

	_, err = conn.Do("MSet", "name", "小雁塔", "address", "西安")
	result, err := redis.Strings(conn.Do("MGet", "name", "address"))
	for _, v := range result {
		fmt.Println(v)
	}

	_, err = conn.Do("expire", "name", 10)

	_, err = conn.Do("lpush", "heroList", "no1: 宋江", 30, "no2: 卢俊义", 28)
	result1, err := redis.String(conn.Do("rpop", "heroList"))
	fmt.Println(result1)
}
